#ifndef __ISCALE_H__
#define __ISCALE_H__

#include "CTypes.h"

class IScale
{
protected:
	vector3dvpos Scale;
public:
	IScale():Scale((vPos)1.0,(vPos)1.0,(vPos)1.0)
	{

	}

	IScale(vector3dvpos &newScale):Scale(newScale)
	{

	}

	virtual ~IScale()									{}

	inline vector3dvpos GetScale()						{	return Scale;				}
	inline vPos GetScaleX()								{	return Scale.X;				}
	inline vPos GetScaleY()								{	return Scale.Y;				}
	inline vPos GetScaleZ()								{	return Scale.Z;				}
	inline void SetScale(vector3dvpos newv)				{	Scale.Set(newv);			}
	inline void SetScale(vPos newX,vPos newY,vPos newZ)	{	Scale.Set(newX,newY,newZ);	}
	inline void SetScaleX(vPos newX)					{	Scale.X = newX;				}
	inline void SetScaleY(vPos newY)					{	Scale.Y = newY;				}
	inline void SetScaleZ(vPos newZ)					{	Scale.Z = newZ;				}
	inline stringc GetScaleStr()                        {   return Scale.GetStr();           }
};

#endif
